package com.mjf.ys.vo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * desc
 * </p>
 *
 * @author chenshoumeng
 * @date 2025/6/30 02:40
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AllAuxiliaryBalanceQueryVO {

    private String code;
    private String message;
    private DataVO data;

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class DataVO {
        private Integer total;
        private String message;
        private Integer page;
        private Integer pageSize;
        private List<ContentVO> list;
    }
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class ContentVO {
        private BigDecimal accumulationthisyear_qty_debit;   // 本年累计借方数量
        private BigDecimal currentperiodamt_oc_credit;       // 本期发生原币贷方金额
        private BigDecimal accumulationthisyear_fc_credit;   // 本年累计本币贷方金额
        private BigDecimal currentperiodamt_qty_credit;      // 本期发生贷方数量
        private BigDecimal currentperiodamt_oc_debit;        // 本期发生原币借方金额
        private String accproperty;                    // 会计要素
        private BigDecimal closingbalance_fc_debit;          // 期末余额本币借方金额
        private String accsubject_class;               // 科目分类
        private BigDecimal closingbalance_qty_debit;         // 期末余额借方数量
        private List<AxiliaryItemVO> axiliaryItems;                  // 辅助项明细
        private String accsubject_id;                  // 科目主键
        private BigDecimal currentperiodamt_fc_debit;        // 本期发生本币借方金额
        private String tenantid;                       // 租户
        private String firstaccsubject_name;           // 一级科目名称
        private String direction;                      // 方向
        private String firstaccsubject_code;           // 一级科目编码
        private BigDecimal currentperiodamt_fc_credit;       // 本期发生本币贷方金额
        private String currency_name;                  // 币种名称
        private BigDecimal currentperiodamt_qty_debit;       // 本期发生借方数量
        private BigDecimal accumulationthisyear_oc_credit;   // 本年累计原币贷方金额
        private String accsubject_name;                // 科目名称
        private BigDecimal closingbalance_oc_debit;          // 期末余额原币借方金额
        private String accsubject_code;                // 科目code
        private BigDecimal accumulationthisyear_qty_credit;  // 本年累计贷方数量
        private BigDecimal accumulationthisyear_fc_debit;    // 本年累计本币借方金额
        private String currency_id;                    // 币种id
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class AxiliaryItemVO {
        private String axiliaryName; // 	辅助核算名称
        private String axiliaryCode; // 辅助核算code
        private List<ItemVO> items;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class ItemVO {
        private String customer_name; // 辅助档案name
        private String customer_id; // 辅助档案id
        private String customer_code; // 辅助档案code
    }

}
